debugtrace.cpp comes packaged with Pin.  I've edited it so that only add instructions and the operand registers are output. I've also filtered out add instructions that read or write to the stack. This is because I am not sure how to output values from the stack through the Pin API. The add instructions that I've seen output by Pin usually only have 1 operand where the output is an operand itself. To run debugtrace, just replace it with the one that comes with Pin. We used Pin revision# 19012 for x86 Windows.

filterHex.cpp is a program used to take the output from Pin and output a file with only the hex values in pairs (two per line).

freqCalculator.cpp is a program used to take the output of filterHex.cpp as input and perform/output a frequency count of which bits are high.

adderSubckts.txt is a slightly edited version of the original koggestone adder netlist. It was edited to make it easier for the parser.cpp program to go through.

parser.cpp is a program that goes through the adderSubckts file and recursively executes starting with KSA until a transistor is reached.  When a transistor is reached, the correct name for the gate and source as known to Ocean are output as well as the width and some additional debug information. The output of parser.cpp is widths.txt, out.txt, and transistors.txt. out.txt has the most useful information output, transistors.txt is just a list of the transistors, and widths.txt is a list of each transistor along with its width. 

adderTest1.txt, adderTest2.txt, and adderTest3.txt are some files which I used to test parser.cpp.

avgVgsFreqCalc.cpp is a program which takes in as input output from ksa.ocn which is run in Ocean. The output file is a list of transistors and the absolute value of their average Vgs during the simulation time period.

ksa.ocn is an ocean script for simulating a netlist and also reading in a file with Vg and Vs for a transistor on the same line and plotting the absolute value of the average of Vg - the average of Vs. ksa.ocn outputs a file with transistor name and average Vgs next to it.

0sPlus0sNetlist, 1sPlus1Netlist, and 1sPlus1sNetlist are test netlists to see the Vgs distribution on different types of inputs. We used gzipNetlist which uses the characteristic inputs from our gzip data taken from Pin in our paper.